package com.ctshk.rpc.workflow.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 我的审批中心
 * </p>
 *
 * @author 谢诗宏
 * @since 2021-01-28
 */
@Data
@ApiModel(description="审批详情")
public class ApprovalInfoDTO implements Serializable {

    @ApiModelProperty(value = "审批id")
    private Long id;

    @ApiModelProperty(value = "审批编号")
    private String approvalNumber;

    @ApiModelProperty(value = "当前步骤id")
    private Long currentStepId;

    @ApiModelProperty(value = "上一步骤id")
    private Long lastStepId;

    @ApiModelProperty(value = "下一步骤id")
    private Long nextStepId;

    @ApiModelProperty(value = "业务类型code")
    private Integer businessType;

    @ApiModelProperty(value = "业务类型名称")
    private String businessTypeName;

    @ApiModelProperty(value = "审批类型code")
    private Integer approvalType;

    @ApiModelProperty(value = "审批类型名称")
    private String approvalTypeName;

    @ApiModelProperty(value = "关联业务ID")
    private Long businessId;

    @ApiModelProperty(value = "发起者ID")
    private Long sponsorId;

    @ApiModelProperty(value = "发起者名称")
    private String sponsorName;

    @ApiModelProperty(value = "业务所需审批价格")
    private BigDecimal amount;

    @ApiModelProperty(value = "发起人部门ID")
    private Long departmentId;

    @ApiModelProperty(value = "发起人部门名称")
    private String departmentName;

    @ApiModelProperty(value = "审批状态,枚举ApprovalStatus")
    private Integer status;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime gmtCreate;

    @ApiModelProperty(value = "审批人ID")
    private Long approverId;

    @ApiModelProperty(value = "当前审批是否由我发起")
    private Boolean isMe;

    @ApiModelProperty(value = "当前步骤审批人是否是我")
    private Boolean isApproverMe;

    @ApiModelProperty(value = "当前步骤是否已审批")
    private Boolean isApproval;

    @ApiModelProperty(value = "业务所需自定义额外json参数")
    private String extendParams;

    @ApiModelProperty(value = "流程步骤列表")
    private List<ApprovalProcessDTO> processes;
}
